草庐IT

php - stream_socket_client 通过 http 代理

全部标签

ruby - Ruby 的 'open-uri' 和 'Net:HTTP' gem 有什么区别?

看起来这两个gem执行的任务非常相似。任何人都可以举例说明一种gem在哪些方面比另一种更有用吗?我没有我所指的具体代码,我更想知道每个gem的一般用例。我知道这是一个简短的问题,我会根据要求填空。谢谢。 最佳答案 它们看起来执行相似任务的原因是OpenURI是Net::HTTP、Net::HTTPS和Net::FTP的包装器。通常,除非您觉得需要较低级别的接口(interface),否则使用OpenURI会更好,因为您可以使用更少的代码。使用OpenURI,您可以打开URL/URI并将其视为文件。参见:http://www.ruby

Python 请求库的 Ruby 等价物(HTTP 客户端)

Python中有一个我喜欢的库,叫做“Requests”。Requests是一个基于urllib3的HTTP客户端。“requestsdoc”。我正在Ruby中寻找类似的东西。基本上我需要的是:上传文件支持(多部分/表单数据)。轻松获取/发布。Cookie可以从响应对象传递到请求对象(手动构建登录脚本)。稳定且灵活。session支持(如果我们没有,则不必手动处理cookie)。我查看了Typhoeus,但主页中的代码示例不起作用;他们已经移动了代码,get方法不再像那样可以直接访问,所以它开始得不好。Curb看起来不错,我喜欢cURL,还有rest-client,它似乎很受欢迎,而e

ruby - 使用 Ruby 脚本通过 https 登录网站

好吧,事情是这样的:我正在开发一个Ruby应用程序,它将从网站获取数据,并将该数据聚合到一个XML文件中。我需要取数据的网站没有我可以使用的API,所以我唯一能想到的就是登录网站,顺序加载有我需要的数据的页面(在这个case,PMs;我想归档它们),然后解析返回的HTML。但是,问题是我不知道有什么方法可以编程模拟登录session。有没有人有任何建议,或者知道我可以用来成功登录到https页面,然后使用来自登录的临时cookiesession以编程方式从站点加载页面的任何行之有效的方法?它不一定是一个仅限Ruby的解决方案——我只是想知道我如何才能真正做到这一点。如果有帮助的话,有问

ruby - 通过 Net::HTTP 在 Ruby 中发送 http post 请求

我正在向Web服务发送带有自定义header的请求。require'uri'require'net/http'uri=URI("https://api.site.com/api.dll")https=Net::HTTP.new(uri.host,uri.port)https.use_ssl=trueheaders={'HEADER1'=>"VALUE1",'HEADER2'=>"HEADER2"}response=https.post(uri.path,headers)putsresponse它不工作,我收到一个错误:/usr/lib/ruby/1.9.1/net/http.rb:19

ruby-on-rails - 进行 HTTP 调用时,Ruby 中的频繁 SystemExit

我有一个RubyonRails网站,可以对外部Web服务进行HTTP调用。我大约每天收到一次SystemExit(下面的堆栈跟踪)错误电子邮件,其中调用服务失败。如果稍后我在我的网站上尝试完全相同的查询,它就可以正常工作。自该网站上线以来,这种情况一直在发生,我一直没能找到导致它的原因。Ruby是1.8.6版,rails是1.2.6版。还有人遇到这个问题吗?这是错误和堆栈跟踪。ASystemExitoccurred/usr/local/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/fcgi_handler.rb:116:inexit'/usr/local

ruby - 我怎样才能通过 "http://gems.rubyforge.org/does not appear to be a repository"错误消息

问题828421提出了类似的问题,但只收到一个真正的答案(更新ruby​​gems)并且该尝试导致相同的错误。Windows上的Ruby版本1.9.1.p243。包括Gem,版本1.3.5。以前从未安装过任何gem;从来没有为这个Ruby做过任何特殊的配置。Ruby本身可以工作,irb也可以,“gem”可以运行但不能安装(可能还有其他操作)。试过这个(来自一本书):geminstallrspec明白了:ERROR:http://gems.rubyforge.org/doesnotappeartobearepositoryERROR:Whileexecutinggem...(Gem::R

ruby - 如何在 Heroku 上托管的 Ruby/Sinatra 应用程序中设置 HTTP header ?

我有一个基于Ruby和Sinatra的工作应用程序部署在Heroku上。我想利用Heroku上可用的HTTP缓存,它使用Varnish。我不确定设置header的最佳方式是什么,以及正确的语法。对最佳方法和语法有什么想法吗?beforedoheaders"Content-Type"=>"text/html;charset=utf8"endget'/'doheaders['Cache-Control']='public,max-age=600'#SOMESTUFFHEREhaml:home,{:layout=>:layout_minfooter}end 最佳答

ruby - 为什么要在框架 Web 服务器前面使用 http 服务器?

sinatra(ruby)、play(scala)、lift(scala)等Web应用程序框架会生成一个监听特定端口的Web服务器。我知道有一些原因,例如安全性、集群以及在某些情况下的性能,可能会导致我在我的Web应用程序之前使用ApacheWeb服务器。根据您的经验,您有什么原因吗? 最佳答案 任何网络应用程序的一部分都具有完全标准化和商品化的功能。nginx或apache等成熟的Web服务器可以执行以下操作。它们可以以更正确、更高效、更稳定、更安全、系统管理员更熟悉并且比您可以在应用程序服务器中重写的任何方式更容易配置的方式来执

ruby - Ruby 中的反射。通过给定的类名实例化一个对象

我是从PHP开始接触ruby​​的。我怎么能用ruby​​做下一件事?$className='ArrayObject';$arrayObject=new$className(); 最佳答案 你可以这样做:arrayObject=Object::const_get('Array').new 关于ruby-Ruby中的反射。通过给定的类名实例化一个对象,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

ruby - 如何获取通过 attr_reader 或 attr_accessor 定义的属性

假设我有一个类AclassAattr_accessor:x,:ydefinitialize(x,y)@x,@y=x,yendend如何在不知道它们的命名方式的情况下获取x和y属性。例如a=A.new(5,10)a.attributes#=>[5,10] 最佳答案 使用内省(introspection),卢克!classAattr_accessor:x,:ydefinitialize(*args)@x,@y=argsenddefattrsinstance_variables.map{|ivar|instance_variable_ge